package com.esunny.resourcevisualization.controller;

import com.esunny.resourcevisualization.domain.entity.ResourceType;
import com.esunny.resourcevisualization.domain.response.ReturnStructure;
import com.esunny.resourcevisualization.service.ResourceTypeService;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;

/**
 * @version 1.0.0.0
 * @ClassName ResourceTypeController
 * @Description 资源类别控制层接口
 * @Author baochencong
 * @Date 2020/9/30 15:39
 */
@Controller
@RequestMapping("/resource")
public class ResourceTypeController {

    @Resource
    private ResourceTypeService resourceTypeService;

    /**
     * 添加资源类别
     *
     * @param resourceType 资源类别信息
     * @return 添加资源类别结果信息
     */
    @ResponseBody
    @PostMapping("/addResourceType")
    public ReturnStructure addResourceType(@RequestBody ResourceType resourceType) {
        if (resourceType == null) {
            return ReturnStructure.NOT_FOUND();
        }
        return resourceTypeService.addResourceType(resourceType);
    }

    /**
     * 通过资源类别英文名删除资源类别
     *
     * @param name 资源累呗英文名
     * @return 删除资源类别结果信息
     */
    @ResponseBody
    @PostMapping("/deleteResourceTypeByName")
    public ReturnStructure deleteResourceTypeByName(@RequestParam("name") String name) {
        if (StringUtils.isBlank(name)) {
            return ReturnStructure.NOT_FOUND();
        }
        return resourceTypeService.deleteResourceTypeByName(name);
    }

    /**
     * 通过资源类别英文名修改中文名
     *
     * @param resourceType 资源类别信息
     * @return 修改中文名结果信息
     */
    @ResponseBody
    @PostMapping("/updateResourceTypeByName")
    public ReturnStructure updateResourceTypeByName(@RequestBody ResourceType resourceType) {
        if (resourceType == null) {
            return ReturnStructure.NOT_FOUND();
        }
        return resourceTypeService.updateResourceTypeByName(resourceType);
    }

    /**
     * 获取资源类别列表
     *
     * @return 资源类别列表
     */
    @ResponseBody
    @GetMapping("/getResourceTypeList")
    public ReturnStructure getResourceTypeList() {
        return ReturnStructure.SUCCESS("获取资源类别列表成功", resourceTypeService.getResourceTypeList());
    }

    /**
     * 通过资源类别英文名获取资源类别
     *
     * @param name 资源类别英文名
     * @return 获取资源类别结果信息
     */
    @ResponseBody
    @GetMapping("/getResourceTypeByName/{name}")
    public ReturnStructure getResourceTypeByName(@PathVariable("name") String name) {
        if (StringUtils.isBlank(name)) {
            return ReturnStructure.NOT_FOUND();
        }

        return ReturnStructure.SUCCESS("获取资源类别信息成功", resourceTypeService.getResourceTypeByName(name));
    }
}
